from ITener import ITener
from IAccion import IAccion
from IAbrir import IAbrir
from logico.problemas.objetos.Objeto import Objeto
class IParticula(ITener):

    __liquida=None
    __contenedor=None
    __accion=None
    __absorbente=None
    
    def __init__(self, contenedor=None, nombreObjeto="", esLiquida=False, esAbsorbente=False):
        self.__liquida=esLiquida
        self.__absorbente=esAbsorbente
        if isinstance(self, Objeto):
            nombreObjeto=self.getNombre()
            
        self.__accion=IAccion(comando="{verbo} {articulo0} {objeto0} en {articulo1} {objeto1}", verbo="Vertir", esHeredable=True, esDesligar=True, enMochila=True, objeto=nombreObjeto)
        self.__contenedor=contenedor
        ITener.__init__(self, 100, {})
       
    def esLiquida(self):
        return self.__liquida
    
    def esAbsorbente(self):
        return self.__absorbente
    
    def vertir(self, contenedorReceptor):
        objeto=self
       
        if(self.__contenedor!=None):
            objeto=self.__contenedor.soltar()
           
        self.__contenedor=contenedorReceptor
        contenedorReceptor.tener(objeto)
       

    def getAcciones(self, objeto, heroe=None):
        if(isinstance(objeto.getContenedor(), IAbrir)):
            if(objeto.getContenedor().getAbierto()):
                return [self.__accion] 
            else:
                return [] 
            
        return [self.__accion] 
    
    def setContenedor(self, contenedor):
        self.__contenedor=contenedor
        
    def getContenedor(self):
        return self.__contenedor